package com.zh.note.huawei.onehundred.代码编辑器;

import java.util.Scanner;

/**
 * https://dream.blog.csdn.net/article/details/131954441
 * <p>
 * 2
 * hell
 * FORWARD 10000
 * REPLACE O
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int k = Integer.parseInt(sc.nextLine());
        String input = sc.nextLine();
        String[][] operations = new String[k][2];
        for (int i = 0; i < k; i++) {
            String s = sc.nextLine();
            String[] strs = s.split(" ");
            operations[i][0] = strs[0];
            operations[i][1] = strs[1];
        }
        StringBuilder sb = new StringBuilder(input);
        int index = 0;
        for (String[] operation : operations) {
            if (operation[0].equals("FORWARD")) {
                //指针向右边移动x，如果超过文本末尾，则指针移动到文本末尾
                index = Math.min(index + Integer.parseInt(operation[1]), sb.length());
            } else if (operation[0].equals("BACKWARD")) {
                //指针向左移动x,如果超过文本开头，则指针移动到文本开头
                index = Math.max(index - Integer.parseInt(operation[1]), 0);
            } else if (operation[0].equals("SEARCH-FORWARD")) {
                // 从指针当前位置向右查找word,并将指针移动到word起始位置，如果没有找到保持不变
                index = sb.indexOf(operation[1], index);
                if (index == -1) {
                    index = sb.length();
                }
            } else if (operation[0].equals("SEARCH-BACKWARD")) {
                // 从指针当前位置向左查找word,并将指针移动到word起始位置，如果没有找到保持不变
                index = sb.lastIndexOf(operation[1], index);
                if (index == -1) {
                    index = 0;
                }
            } else if (operation[0].equals("INSERT")) {
                // 在指针当前位置插入word,并将指针移动到word结尾
                sb.insert(index, operation[1]);
                index += operation[1].length();
            } else if (operation[0].equals("REPLACE")) {
                // 在指针当前位置插入替换并插入字符（删除原有字符，插入新字符）
                sb.replace(index, index + operation[1].length(), operation[1]);
            } else if (operation[0].equals("DELETE")) {
                // 在当前位置删除x个字符
                int length = Integer.parseInt(operation[1]);
                sb.delete(index, index + length);
            }

        }
        System.out.println(sb.toString());

    }
}
